package com.gdhz.xiaohengqin.device.service;

import com.gdhz.xiaohengqin.device.model.WieGandRequest;
import com.gdhz.xiaohengqin.device.model.WieGandResponse;
import com.gdhz.xiaohengqin.device.model.entity.AccessGate;
import com.gdhz.xiaohengqin.device.model.entity.DoorInfo;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;

import java.util.List;

/**
 * @author Swallows
 * @date 2025-05-29 15:33
 */
public interface AccessGateService {

    Mono<WieGandResponse> sendActuationCommand(WieGandRequest request);

    Mono<AccessGate> findBySn(Integer sn);

    Mono<Void> saveAccessGate(AccessGate accessGate);

    Flux<AccessGate> findAll();

    Mono<Void> saveDoors(Integer gateSn, List<DoorInfo> doorInfos);
}
